package moduloConhecimento.nivel;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;

public class RepositorioNiveis
{
	private Nivel[] arrayNiveis;
	
	/**
	 * Constroi um array de niveis baseado no arquivo, le primeiramente a qtd
	 * de niveis, depois carrega tudo no array e fecha o arquivo
	 * @param caminhoTeclado
	 * @throws IOException
	 */
	public RepositorioNiveis(String caminhoTeclado) throws IOException
	{
		System.out.println(caminhoTeclado + "niveis.txt");
		File arquivo = new File(caminhoTeclado + "niveis.txt");
		BufferedReader bufferLeitura = new BufferedReader(new FileReader(arquivo));
		String temp;
		int i = 0;
		
		temp = bufferLeitura.readLine();
		arrayNiveis = new Nivel[Integer.parseInt(temp)];
		
		while ((temp = bufferLeitura.readLine()) != null)
			arrayNiveis[i] = new Nivel(temp, i++);
		
		bufferLeitura.close();		
	}
	
	public int getQtdNiveis()
	{
		return(arrayNiveis.length);
	}
	
	public Nivel nivelPertencente(char caracter) throws NaoPerteceNenhumNivelException
	{
		for (int i = 0; i < arrayNiveis.length; i++)
			if (arrayNiveis[i].pertenceNivel(caracter))
				return(arrayNiveis[i]);
		throw new NaoPerteceNenhumNivelException(caracter);
	}
	 
	public Nivel procurarNivel(int valor)
	{
		for (int i = 0; i < arrayNiveis.length; i++)
			if (arrayNiveis[i].getId() == valor)
				return(arrayNiveis[i]);
		//em teoria, jamais deve chegar nesse return
		return(null);
	}
	
}


